﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Xna
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;
//nyArt
using System.Drawing.Imaging;
using jp.nyatla.nyartoolkit.cs;
using jp.nyatla.nyartoolkit.cs.core;
using jp.nyatla.nyartoolkit.cs.detector;
using NyARToolkitCSUtils.Capture;
using NyARToolkitCSUtils.NyAR;
using System.Runtime.InteropServices;

namespace Puzzle_3D
{
    class Puzzle_PuzzleObject
    {
        private Model model;
        private Matrix[] transformMatrix;

        private NyARTransMatResult transmat;
        private bool isDetected;

        private Vector2 positionTranslate;

        public Puzzle_PuzzleObject(Model _model)
        {
            this.model = _model;
            this.transmat = new NyARTransMatResult();
            this.isDetected = false;
            this.positionTranslate = new Vector2();
        }

        public Model getModel()
        {
            return this.model;
        }

        public Matrix[] TransformationMatrix
        {
            get
            {
                return this.transformMatrix;
            }
            set
            {
                this.transformMatrix = value;
            }
        }

        public bool Detected
        {
            get
            {
                return this.isDetected;
            }
            set
            {
                this.isDetected = value;
            }
        }

        public NyARTransMatResult TranslationMatrix
        {
            get
            {
                return this.transmat;
            }
            set
            {
                this.transmat = value;
            }
        }

        public Vector2 Position
        {
            get
            {
                return this.positionTranslate;
            }
            set
            {
                this.positionTranslate = value;
            }
        }
    }
}
